package com.qxbb.report.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qxbb.report.bo.BrandBO;
import com.qxbb.report.bo.CommodityBO;
import com.qxbb.report.bo.CommodityInventoryBO;
import com.qxbb.report.bo.InventoryBo;
import com.qxbb.report.pojo.ChainStore;
import com.qxbb.report.vo.*;

import java.io.IOException;
import java.util.List;

public interface ChainStoreService extends IService<ChainStore> {

     /**
      * 根据用户id查询该用户所有连锁店信息
      * @param userId
      * @return
      */
     List<ChainStoreVO> selectStoreId(Integer userId,Integer userType);


     /**
      * 库存统计 ==》 店铺信息
      * @param userType
      * @param userId
      * @return
      */
     List<InventoryStoreVO> selectInventory(Integer userType, Integer userId);

     /**
      * 库存统计——》店铺 ———》时间 -> 年份
      * @param chainId
      * @return
      */
     List<InventoryYearVO> selectInventoryYear(Integer chainId);

     /**
      * 库存统计——》店铺 ———》时间 -> 季度
      * @param year
      * @return
      */
     List<InventoryQuanterVO> selectInventoryQuanter(Integer storeId,String year);

     /**
      * 库存统计——》店铺 ———》时间 -》品牌
      * @param brandBO
      * @return
      */
     List<InventoryBrandVO> selectInventoryBrand(BrandBO brandBO);

     /**
      * 库存统计 --》 品牌 --》 商品
      * @param commodityBO
      * @return
      */
     List<InventoryCommodityVO> selectInventoryCommodity(CommodityBO commodityBO) throws IOException;

     /**
      * 模糊查询连锁店库存
      * @param inventoryBo
      * @return
      */
     List<InventoryStoreVO> selectLikeInventory(InventoryBo inventoryBo);

     /**
      * 库存统计——》店铺 ———》时间 -》品牌
      * @param brandBO
      * @return
      */
     List<InventoryCategoryVO> selectInventoryCategory(BrandBO brandBO);

     /**
      * 库存统计 --》 类别 --》 商品
      * @param commodityInventoryBO
      * @return
      */
     List<InventoryCommodityVO> selectCommodity(CommodityInventoryBO commodityInventoryBO) throws IOException;

     /**
      * 根据店铺id获取店铺名称
      * @param storeId
      * @return
      */
    String selectChainName(Integer storeId);
}
